kNoSwitchConfirmBit = 0; { Flag indicating that there is no need to confirm a switch to this mode }
kDepthNotAvailableBit = 1; { Current depth not available in new mode }
kShowModeBit = 3; { Show this mode even though it requires a confirm. }
kModeNotResizeBit = 4; { Do not use this mode to resize display (for cards that mode drives a different connector). }
{ Summary Change Flags (sticky bits indicating an operation was performed)}
{ For example, moving a display then moving it back will still set the kMovedDisplayBit.}
{}
kBeginEndConfigureBit = 0;
kMovedDisplayBit = 1;
kSetMainDisplayBit = 2;
kSetDisplayModeBit = 3;
kAddDisplayBit = 4;
kRemoveDisplayBit = 5;
kNewDisplayBit = 6;
kDisposeDisplayBit = 7;
kEnabledDisplayBit = 8;
kDisabledDisplayBit = 9;
kMirrorDisplayBit = 10;
kUnMirrorDisplayBit = 11;
{ Notification Messages for extended call back routines }
kDMNotifyInstalled = 1; { At install time }
kDMNotifyEvent = 2; { Post change time }
kDMNotifyRemoved = 3; { At remove time }
kDMNotifyPrep = 4; { Pre change time }
kDMNotifyExtendEvent = 5; { Allow registrees to extend apple event before it is sent }
kDMNotifyDependents = 6; { Minor notification check without full update }
{ Notification Flags }
kExtendedNotificationProc = $10000;
{ types for notifyType }
kFullNotify = 0; { This is the appleevent whole nine yards notify }
kFullDependencyNotify = 1; { Only sends to those who want to know about interrelated functionality (used for updating UI) }
{ DisplayID/DeviceID constants }
kDummyDeviceID = $0FF; { This is the ID of the dummy display, used when the last “real” display is disabled.}
kInvalidDisplayID = $000; { This is the invalid ID}
kFirstDisplayID = $100;
{ bits for panelListFlags }
kAllowDuplicatesBit = 0;
{ Constants for fidelity checks }
kNoFidelity = 0;
kMinimumFidelity = 1;
kDefaultFidelity = 500; { I'm just picking a number for Apple default panels and engines}
kDefaultManufacturerFidelity = 1000; { I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)}
kAnyPanelType = 0; { Pass to DMNewEngineList for list of all panels (as opposed to specific types)}
kAnyEngineType = 0; { Pass to DMNewEngineList for list of all engines}
kAnyDeviceType = 0; { Pass to DMNewDeviceList for list of all devices}
kAnyPortType = 0; { Pass to DMNewDevicePortList for list of all devices}
{ portListFlags for DM_NewDevicePortList }
{ Should offline devices be put into the port list (such as dummy display) }
kPLIncludeOfflineDevicesBit = 0;
type
DMFidelityType = LONGINT;
{ AVID is an ID for ports and devices the old DisplayID type}
{ is carried on for compatibility}
{}
AVIDType = LONGINT;
DisplayIDType = AVIDType;
DMListType = Ptr;
DMListIndexType = LONGINT;
AVPowerStatePtr = Ptr;
DMComponentListEntryRec = record
itemID: DisplayIDType; { DisplayID Manager}
itemComponent: Component; { Component Manager}
itemDescription: ComponentDescription; { We can always construct this if we use something beyond the compontent mgr.}
itemClass: ResType; { Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)}
itemFidelity: DMFidelityType; { How good is this item for the specified search?}
itemSubClass: ResType; { Subclass of group to put this panel. Can use to do sub-grouping (eg volume for volume panel and mute panel)}
itemSort: Point; { Set to 0 - future to sort the items in a sub group.}
itemFlags: LONGINT; { Set to 0 (future expansion)}
itemReserved: ResType; { What kind of code does the itemReference point to (right now - kPanelEntryTypeComponentMgr only)}
itemFuture1: LONGINT; { Set to 0 (future expansion - probably an alternate code style)}
itemFuture2: LONGINT; { Set to 0 (future expansion - probably an alternate code style)}
itemFuture3: LONGINT; { Set to 0 (future expansion - probably an alternate code style)}
itemFuture4: LONGINT; { Set to 0 (future expansion - probably an alternate code style)}
function DMNewAVPanelList (displayID: DisplayIDType; panelType: ResType; minimumFidelity: DMFidelityType; panelListFlags: LONGINT; reserved: LONGINT; var thePanelCount: DMListIndexType; var thePanelList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $0C27, $ABEB;
{$ENDC}
function DMNewAVEngineList (displayID: DisplayIDType; engineType: ResType; minimumFidelity: DMFidelityType; engineListFlags: LONGINT; reserved: LONGINT; var engineCount: DMListIndexType; var engineList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $0C28, $ABEB;
{$ENDC}
function DMNewAVDeviceList (deviceType: ResType; deviceListFlags: LONGINT; reserved: LONGINT; var deviceCount: DMListIndexType; var deviceList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $0A29, $ABEB;
{$ENDC}
function DMNewAVPortListByPortType (subType: ResType; portListFlags: LONGINT; reserved: LONGINT; var devicePortCount: DMListIndexType; var theDevicePortList: DMListType): OSErr;
function DMDisposeList (panelList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $022C, $ABEB;
{$ENDC}
function DMGetNameByAVID (theID: AVIDType; nameFlags: LONGINT; var name: Str255): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $062D, $ABEB;
{$ENDC}
function DMNewAVIDByPortComponent (thePortComponent: Component; portKind: ResType; reserved: LONGINT; var newID: AVIDType): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $082E, $ABEB;
{$ENDC}
function DMGetPortComponentByAVID (thePortID: DisplayIDType; var thePortComponent: Component; var theDesciption: ComponentDescription; var thePortKind: ResType): OSErr;
function DMDisposeAVComponent (theAVComponent: Component): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $0231, $ABEB;
{$ENDC}
function DMSaveScreenPrefs (reserved1: LONGINT; saveFlags: LONGINT; reserved2: LONGINT): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $0632, $ABEB;
{$ENDC}
function DMNewAVIDByDeviceComponent (theDeviceComponent: Component; portKind: ResType; reserved: LONGINT; var newID: DisplayIDType): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $0833, $ABEB;
{$ENDC}
function DMNewAVPortListByDeviceAVID (theID: AVIDType; minimumFidelity: DMFidelityType; portListFlags: LONGINT; reserved: LONGINT; var devicePortCount: DMListIndexType; var theDevicePortList: DMListType): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $0C34, $ABEB;
{$ENDC}
function DMGetDeviceComponentByAVID (theDeviceID: AVIDType; var theDeviceComponent: Component; var theDesciption: ComponentDescription; var theDeviceKind: ResType): OSErr;
{$IFC NOT GENERATINGCFM}
inline
$303C, $0835, $ABEB;
{$ENDC}
function DMNewDisplayModeList (displayID: DisplayIDType; modeListFlags: LONGINT; reserved: LONGINT; var thePanelCount: DMListIndexType; var thePanelList: DMListType): OSErr;